package object;

import java.time.Clock;
import java.time.LocalDateTime;

public class Demo {
    @Override
    public String toString() {
        return super.toString();
    }

    public static void main(String[] args) {
        /**
         * 第一个常被子类重写的Object方法是toString.
         * 重写的原因经常是:
         * 1:输出对象信息更准确
         * 2:链接字符串的时候内容有意义
         */
        Point p = new Point(1,2);
        /*
        输出一个对象时,实际上输出的是改对象toSting()方法返回的字符串.
        Object定义了toString方法,目的是将当前对象转换为字符串,而返回的字符串格式为:类名@地址
        在输出上来讲,这个字符串对开发帮助不大,因此要重写子类的toString方法.
         */
        System.out.println(p);

        /*
         其他类型在与字符串连接时,会调用其toString转换为字符串后再进行连接
         */

        /*  equals:相等
        另一个常被子类重写的方法是equals.
        它的作用是判断两个对象的内容是否相同
         */
        Point p2 = new Point(1,2);
        System.out.println(p == p2); //对于引用类型, ==  是比较是否为同一个对象
        System.out.println( p.equals(p2));
        /*
        子类不重写equals时,比较的还是对象,不重写 无意义;
         */
        String a = new String("aa");
        a.equals(a);
        int c = 1;
    }
}
